package framework;

import framework.graphics.Pixmap;

/**
 * Essa interface mágica servirá para poder escolher entre renderização pelo Canvas ou pelo
 * OpenGL ES
 */
public interface Graphics {
	/**
	 * Frescura 
	 */
	public static enum PixmapFormat {
		ARGB8888, ARGB4444, RGB565
	}
	
	/**
	 * Carrega uma imagem
	 * @param fileName
	 * @param format
	 * @return
	 */
	public Pixmap newPixmap(String fileName, PixmapFormat format);
	/**
	 * Limpa a tela
	 * @param color
	 */
	public void clear(int color);
	/**
	 * Desenha um pixel
	 * @param x
	 * @param y
	 * @param color
	 */
	public void drawPixel(int x, int y, int color);

	public void drawLine(int x, int y, int x2, int y2, int color);

	public void drawRect(int x, int y, int width, int height, int color);
	
	public void drawFilledRect(int x, int y, int width, int height, int color);
	/**
	 * Desenha parte de uma imagem na tela
	 * @param pixmap a imagem
	 * @param x
	 * @param y
	 * @param srcX posição x relativa a imagem
	 * @param srcY
	 * @param srcWidth
	 * @param srcHeight
	 */
	public void drawPixmap(Pixmap pixmap, int x, int y, int srcX, int srcY,
			int srcWidth, int srcHeight);
	
	/**
	 * Desenha uma imagem inteira na tela
	 * @param pixmap
	 * @param x
	 * @param y
	 */
	public void drawPixmap(Pixmap pixmap, int x, int y);

	public int getWidth();

	public int getHeight();
}
